// 协议

/**
 * 请求头 固定数据
 * @description 所有请求都需要携带的固定数据
 * @property {string} ver - 版本号
 * @property {string} os - 操作系统
 * @property {string} channel - 渠道
 * @property {string} appId - 客户端 id
 * @property {string} appSecret - 客户端密钥
 * @property {string} token - 登录凭证
 * @property {string} lng - 经度
 * @property {string} lat - 纬度
*/
export class HttpHeader {
  ver: string = "1.0.0"
  os: string = "web"
  channel: string = "VUE3"
  appId: string = "5RGJ5LIT5ASN54AK54YR"
  appSecret: string = "5RGJ5LIT5ASN54AK54YR"
  token: string = "5RGJ5LIT5ASN54AK54YR"
  lng: string = "107041452"
  lat: string = "33030752"
}

/**
 * 请求体 固定数据
 * @description 所有请求都需要携带的固定数据
 * @property {HttpHeader} header - 请求头
 * @property {T} param - 请求体
*/
export class HttpRequest<T> {
  header: HttpHeader = new HttpHeader() // 请求头
  param: T // 请求体

  /** 构造函数 */
  constructor(param: T) {
    this.param = param
  }
  /** 创建请求体 */
  static create<T>(param: T) {
    return new HttpRequest(param)
  }
  /** 创建请求体 */
  static of<T>(param: T) {
    return new HttpRequest(param)
  }
}
